home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Game-Power
/
Amiga Game-Power.iso
/
pd mix i
/
pict saver
/
analyrim
/
dbmsdocs.zoo
/
userexts.doc
< prev
Wrap
Text File
|
1992-01-05
|
2KB
|
53 lines
How to Add User Extensions to AnalyCalc
There are 2 subroutines provided with the AnalytiCalc/
PortaCalc package designed to facilitate addition of user defined
commands or functions to the sheet without having to get into the
logic of the spreadsheet otherwise very deeply. These are the
USRCMD.FOR file, for adding user commands, and the USRFCT.* files
for adding user functions.
Currently supplied:
USRFCT.FTN Minimal user functions, supports only
the *U IDATE function to return system
date.
USRFCT.FOR In addition to above supports the *U MTXEQ
function to solve matrix equations.
USRFCT.ASC In addition to above, supports MOVEV
and MDET (move matrix values, compute
determinant)
USRFCT.SRC In addition supports MPROD, MADDV, MSUBV,
MMPYT, MMPYC, and VARY functions for more
general matrix math. Standard on VAX.
USRCMD.FOR (Only for VAX): no-op at present, but
is passed the command line and a "command
found" flag and an indicator it may set
for type of recalculation to do. The
ICODE return may be 1 for no recalc,
3 for default recalc, or 2 to redo
sheet & redraw. Set the IGOTIT argument
to 1 if you process the command there.
Various parsing aids are provided and most system data
exists in commons which may be copied from the XQTCMD.FOR source
code. Any command desired may be implemented. The USRCMD
routine is called ahead of all commands except the *, -,
and journaling commands, so may supersede them if need be.
The USRFCT function names are stored in an internal array
and always appear as *U name [args] in the cell. This routine is
called from the CMND subroutine. The method of naming functions allows
unlimited use of names.
Supplied matrix routines access the array holding values of
the spreadsheet. This is the XVBLS array, and subroutines had to be
modified to address it correctly. The main thing is that the
"distance" between successive rows (same column) on the sheet is
now always RRW (in the parameter statements in VKLUGPRM.FTN), rather
than the normal Fortran default of the dimensions. You must alter
your routines accordingly and remember the sheet is stored so that
the rows are the fast-varying elements. (This is also the computational
order to avoid paging the program to death.)
Glenn Everhart